In recent years, storage systems provided with first and second storage devices having different access speeds have been developed. In this case, the first storage device has a high access speed and a small capacity, and the second storage device has a lower access speed and a larger capacity than the first storage device. The first storage device (hereinafter referred to as a high-speed storage device) and the second storage device (hereinafter referred to as a low-speed storage device) are combined together in a tiered manner, and thus the storage system is realized. Therefore, such a storage system is also referred to as a tiered storage system. In the tiered storage system, in general, the high-speed storage device and the low-speed storage device are allocated to an upper tier and a lower tier, respectively.
Furthermore, in recent years, it has been generalized that a storage area is virtualized. The same is true of the tiered storage system. In the tiered storage system, at least a part of a storage area (hereinafter referred to as a physical storage area) of each of the high-speed storage device and the low-speed storage device is allocated (mapped) to a logical volume. The logical volume means a logical storage area recognized as a logical storage drive (i.e., a logical disk or a logical unit) by a host computer (hereinafter referred to as a host) using a storage system (tiered storage system).
A high-level program such as an application, which runs under the host, accesses the logical volume, using a logical address. The logical address is translated into a physical address in the high-speed storage device or the low-speed storage device by an address translation function of, e.g., an operating system (OS) of the host or a storage controller of the storage system. Based on this physical address, a storage area in a physical volume, which is mapped to a storage area in the logical volume, is accessed. By virtue of this feature, the high-level program can access a storage area in a storage device without recognizing the storage area in the storage device.
Furthermore, in the tiered storage system, for management, the logical volume and the physical volume are each divided into a plurality of small areas having the same size. Such a small area is referred to as a chunk. In the case where chunks in the logical volume need to be distinguished from those in the physical volume, the chunks of the logical volume and those of the physical volume are referred to as logical chunks and physical chunks, respectively.
For each of chunks (e.g., logical chunks), the storage controller monitors the state of an access to each chunk. As an index indicative of the state of the above access, in general, an access frequency statistical value such as the number of times of access (i.e., the number of times of input and output corresponding to a read/write) or the total amount of accessed data, for each chunk in a given time period (monitoring period), is applied.
Based on an access frequency statistical value regarding each of logical chunks, the storage controller reallocates a physical chunk in a lower tier to a logical chunk to which a physical chunk in an upper tier is allocated, and also a physical chunk in the upper tier to a logical chunk to which a physical chunk in the lower tier is allocated. That is, the storage controller relocates data of the physical chunk in the upper tier to the physical chunk in the lower tier, and also data of the physical chunk in the lower tier to the physical chunk in the upper tier.
In accordance with the above reallocation (relocation), address translation information on the logical chunk is updated. More specifically, the physical address associated with the logical address of the logical chunk is updated to indicate the physical chunk reallocated to the logical chunk. Even after the above reallocation, the high-level program can access the above physical chunk (i.e. the reallocated physical chunk) using logical address of the logical chunk without recognizing the reallocation (i.e., without recognizing updating of the address translation information in accordance with the reallocation). Such a tiered storage system is suitable for virtualization of a storage area.
As described above, in a conventional tiered storage system, an access frequency statistical value is acquired for each of chunks, and a chunk (logical chunk) whose access frequency statistical value is great (i.e., which is great in the number of times access is made or which is large in the total amount of accessed data) is allocated to a physical chunk in the upper tier (i.e., the high-speed storage device). That is, in the conventional technique, in each of monitoring periods, a storage area of the high-speed storage device (i.e., a high-speed area) is allocated (mapped) to a logical chunk whose access frequency statistical value (access frequency) is determined great (high). By virtue of such allocation (tiered structure), it is expected that the performance of the entire tiered storage system will be improved.
In the conventional technique, a storage area of the low-speed storage device (i.e., a low-speed area) is allocated to a logical chunk whose access frequency statistical value is small. However, there is a possibility that a set of logical chunks whose access frequency statistical values are small may include a logical chunk enabling the performance of the entire tiered storage system (i.e., a system performance) to be further improved, if the high-speed area is allocated to the logical chunk.